package com.xuelang.pipeline.domain.pipeline.service;



import com.xuelang.pipeline.client.common.result.PageRecord;
import com.xuelang.pipeline.client.pipeline.dto.PipelineTemplateQuery;
import com.xuelang.pipeline.domain.pipeline.PipelineTemplate;

import java.util.List;

/**
 * 流水线模板领域服务类
 *
 * @author xiwen.zxg
 * @since 2024/5/15
 */
public interface PipelineTemplateDomainService {
    /**
     * 获取流水线模板列表，有过滤条件
     *
     * @param currentPage
     * @param pageSize
     * @param pipelineTemplateQuery
     * @return
     */
    PageRecord<PipelineTemplate> pageList(long currentPage, long pageSize, PipelineTemplateQuery pipelineTemplateQuery);
    /**
     * 获取流水线模板列表，有过滤条件
     *
     * @param pipelineTemplateQuery
     * @return
     */
    List<PipelineTemplate> list(PipelineTemplateQuery pipelineTemplateQuery);
    /**
     * 获取流水线模板列表，有过滤条件
     *
     * @param pipelineTemplate
     * @return
     */
    List<PipelineTemplate> list(PipelineTemplate pipelineTemplate);
    /**
     * 新增流水线模板
     *
     * @param pipelineTemplate
     * @return
     */
    Boolean save(PipelineTemplate pipelineTemplate);

    /**
     * 更新流水线模板
     *
     * @param pipelineTemplate
     * @return
     */
    Boolean update(PipelineTemplate pipelineTemplate);
    /**
     * 删除流水线模板
     *
     * @param pipelineTemplateUuid
     * @return
     */
    Boolean delete(String pipelineTemplateUuid);

    /**
     * 判断流水线模板名称是否存在
     *
     * @param pipelineTemplateUuid
     * @param pipelineTemplateName
     * @return
     */
    Boolean existsName(String pipelineTemplateUuid, String pipelineTemplateName);

    /**
     * 获取流水线模板详情
     *
     * @param pipelineTemplateUuid
     * @return
     */
    PipelineTemplate query(String pipelineTemplateUuid);

}
